//
// Created by hsj on 2021/12/22.
//
#include <iostream>
#include "test_wchar_t.h"
#include <bits/locale_classes.h>
#include <locale>

using namespace std;

//测试宽字符集wchar_t
void test_wchart_t(){
    //使用setlocale函数将本机的语言设置为中文简体
    //LC_ALL表示设置所有的选项（包括金融货币、小数点，时间日期格式、语言字符串的使用习惯等），chs表示中文简体
    /**
        vim /etc/locale.conf

        #LANG=en_US.UTF-8
        LANG="zh_CN.UTF-8"

        source /etc/locale.conf
     */
    setlocale(LC_ALL, "zh_CN.UTF-8");
    //warning: ISO C++ forbids converting a string constant to 'wchar_t*'
    //c++里面的校验太严格，类比es5、es6越来越严
    const wchar_t *hanz = L"何胜金很聪明啊,是的呢，const";//推荐这种方式
    const char16_t *hanz16 = u"使用的是chart6方式";
    const char32_t  *hanz32 = U"使用的是chart32方式";
//    wchar_t *hanz = (wchar_t*) L"何胜金很聪明啊,是的呢";
//    wchar_t hanz[] = L"何胜金很聪明啊";
    //warning: ISO C++ forbids converting a string constant to 'char*'
//    char *hanzc = "hsj is smart";
    wcout<<hanz<<endl;
    wcout<<hanz16<<endl;
    wcout<<hanz32<<endl;
    cout<<R"(何胜金使用raw方式)"<<endl;
    cout<<R"+*("(你好，何胜金)"，很高兴认识你)+*"<<endl;
    cout<<"何胜金~"<<endl;

}

